package com.hivekion.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gitee.sunchenbin.mybatis.actable.annotation.ColumnComment;
import com.gitee.sunchenbin.mybatis.actable.annotation.ColumnType;
import com.gitee.sunchenbin.mybatis.actable.annotation.Index;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.hivekion.common.entity.BaseEntity;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * 人口数据表
 *
 * @author sutao
 */
@TableName("tjj_sys_home")
@Data
@ToString
public class SysHome extends BaseEntity {

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @Index(columns = {"home_name_id"})
      @ColumnComment("户名称id")
      private String homeNameId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("名称")
      private String name;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("与户主关系")
      private String relation;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("人户分离情况")
      @Index(columns = {"leave_State"})
      private String leaveState;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @Index(columns = {"id_card"})
      @ColumnComment("身份证")
      private String idCard;

      @TableField
      @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      @ColumnType(MySqlTypeConstant.DATETIME)
      @ColumnComment("出生日期")
      @Index(columns = {"birth_Day"})
      private Date birthDay;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("学历")
      @Index(columns = {"education"})
      private String education;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("民族")
      private String nation;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR,length = 255)
      @ColumnComment("居委会名称")
      private String committeeName;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR,length = 255)
      @ColumnComment("户籍所在地Id")
      private String homeAddressId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR,length = 5000)
      @ColumnComment("户籍所在地")
      private String homeAddress;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("户籍所在地最后一级ID")
      private String homePathId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR,length = 50)
      @ColumnComment("户籍所在地,最末级Id")
      private String pathId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR,length = 50)
      @ColumnComment("居住所在地Id")
      private String realAddressId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR,length = 50)
      @ColumnComment("居住所在地Id")
      private String realPathId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR,length = 500)
      @ColumnComment("居住所在地")
      private String realAddress;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("人口类别")
      @Index(columns = {"peopel_type"})
      private String peopelType;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("外出情况")
      private String outState;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("职业")
      private String profession;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("住房套数")
      private Integer houseCount;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("住房结构")
      private String houseStruct;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("住房面积")
      private String houseSize;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("住房间数")
      private Integer smallHouseCount;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 50)
      @ColumnComment("住房年限")
      private String houseAge;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("是否有冲水厕所(0 是 1否)")
      private Integer hasWashRoom;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("是否集中供水(0 是 1否)")
      private Integer hasCommenWater;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("存活状态（0 正常 1 死亡）")
      private Integer beingState;

      @TableField
      @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      @ColumnType(MySqlTypeConstant.DATETIME)
      @ColumnComment("死亡日期")
      private Date deathDate;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("异常状态（0 正常 1 异常）")
      private Integer abnormalState;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("性别（1 男 2 女）")
      private Integer sex;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 500)
      @ColumnComment("异常关联数据")
      private String  abnormalSchame;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 20)
      @ColumnComment("出生日期")
      private String birth;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("是否集体户（1 是 2 否）")
      private Integer team;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("是否户主（1 户主 2 非户主 3 死亡人口）")
      private Integer isHouseholder;

      @TableField
      @ColumnType(value = MySqlTypeConstant.VARCHAR, length = 20)
      @ColumnComment("房屋建成时间？")
      private String establish;

      @TableField
      @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      @ColumnType(MySqlTypeConstant.DATETIME)
      @ColumnComment("房屋建成时间")
      private Date establishDate;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("企业集团id？")
      private Integer collectiveId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("供水系统？")
      private Integer drinkingId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("排水系统？")
      private Integer drainageId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("垃圾桶情况？")
      private Integer garbageId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("消费情况？")
      private Integer consumerInfoId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("住宅id？")
      private Integer residenceId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("城镇id？")
      private Integer townId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("组织、公司id？")
      private Integer organizeId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("机构id？")
      private Integer agencyId;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("是否审核？")
      private Integer examine;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("批次？")
      private Integer batch;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("速度？")
      private Integer speed;

      @TableField
      @ColumnType(value = MySqlTypeConstant.INT)
      @ColumnComment("未知标识？")
      private Integer flag;

}
